/*  
 * @(#) Constants.java Create on 2014-03-12 下午04:03:50   
 *   
 * Copyright 2014 by fibrlink.   
 */

package com.springdemo.module.systemmanager.dao;

import com.springdemo.basic.global.dao.BaseDao;
import com.springdemo.module.systemmanager.entity.User;
import com.springdemo.module.systemmanager.entity.UserPage;
import com.springdemo.module.systemmanager.entity.myentity.MyUser;

import java.util.List;
import java.util.Map;

/**
 * 
 * @author san 
 * @date   2014-03-12
 */
public interface UserDao<T> extends BaseDao<T> {
	
	/**
	 * 用户下载信息
	 * @Title: queryUserDownloadList
	 * @data:2016-8-10下午4:58:57
	 * @author:charlin_yin
	 *
	 * @return
	 */
	public List<MyUser> queryUserDownloadList();
	
	/**
	 * 根据id查询用户列表
	 * @Title: queryUserByList
	 * @data: 2014-03-12 下午04:51:50
	 * @author: shuqi
	 *
	 * @throws Exception
	 */
	public List<MyUser> queryUserByList( Object id );
	
	/**
	 * 根据id查询用户信息
	 * @Title: queryUserById
	 * @data: 2014-03-12 下午04:51:50
	 * @author: shuqi
	 *
	 * @throws Exception
	 */
	public MyUser queryUserById( Object id );
	
	/**
	 * 查询用户
	 * @Title: queryByWhere
	 * @data:2014-3-4下午02:26:55
	 * @author:san
	 *
	 * @param userInfo
	 * @return
	 * @throws Exception
	 */
	public MyUser queryByWhere( UserPage userInfo )throws Exception;

    /**
     * 获取个人信息
     * @param userInfo
     * @return
     * @throws Exception
     */

    public MyUser queryUserSelf( UserPage userInfo )throws Exception;


    /**
	 * 上传人物头像
	 * @Title: updateHeadPhoto
	 * @data:2014-3-21上午10:00:55
	 * @author:san
	 *
	 * @throws Exception
	 */
	public  void updateHeadPhoto( Map<String, String> map )throws Exception;
	
	/**
	 * 上传人物正式照片
	 * @Title: updatePhoto
	 * @data:2014-3-21上午10:00:55
	 * @author:san
	 *
	 * @throws Exception
	 */
	public  void updatePhoto( Map<String, String> map )throws Exception;
	/**
	 * 查询用户信息是否重复
	 * @Title: noRepeat
	 * @data: 2014-03-12 下午04:03:50
	 * @author: shuqi
	 *
	 * @throws Exception
	 */
	public Integer noRepeat( MyUser myUser ) throws Exception;
	
	
	/**
	 * 选择人员列表
	 * @Title: querySelectedUser
	 * @data:2014-4-22上午10:14:12
	 * @author:san
	 *
	 * @param user
	 * @return
	 * @throws Exception
	 */
	public List<MyUser> selectUserList( MyUser user )throws Exception;
	
	/**
	 * 选择审核人列表
	 * @Title: selectAuditorList
	 * @param user
	 * @return
	 * @throws Exception
	 */
	public List<MyUser> selectAuditorList( MyUser user )throws Exception;
	
	/**
	 * 选择人员的总数
	 * @Title: querySelectCount
	 * @data:2014-4-22上午10:56:08
	 * @author:san
	 *
	 * @param user
	 * @return
	 * @throws Exception
	 */
	public int querySelectCount( MyUser user )throws Exception;
	
	/**
	 * 查询用户人数的总数
	 * @Title: queryUserByCount
	 * @data:2014-8-22上午10:24:26
	 * @author:san
	 *
	 * @return
	 * @throws Exception
	 */
	public int queryUserByCount( Object o )throws Exception;
	/**
	 * 验证人员导入
	 * @Title: trainUserImportVa
	 * @data:2014-9-30上午09:14:23
	 * @author:wolf
	 *
	 * @param user
	 * @return
	 * @throws Exception
	 */
	public List<MyUser> trainUserImportVa( MyUser user )throws Exception;

    /**
     * 保存导入的用户
     * @param user
     * @return
     * @throws Exception
     */
    public void saveImportUser( User user )throws Exception;


    /**
     * 获取未选择的人员
     * @param user
     * @return
     * @throws Exception
     */
    public int queryNoExamUserByCount( MyUser user )throws Exception;

    /**
     * 获取考试  未添加人员的列表
     * @param user
     * @return
     * @throws Exception
     */
    public List<MyUser> getExamNoUserList( MyUser user )throws Exception;


    /**
     * 与考试相关联的人员总数
     * @param user
     * @return
     * @throws Exception
     */
    public int queryExamUserByCount( MyUser user )throws  Exception;

    /**
     * 与考试相关的考试列表
     * @param user
     * @return
     * @throws Exception
     */
    public List<MyUser> examUserList( MyUser user )throws Exception;
    
    /**
     * 与通知相关联的人员总数
     * @param user
     * @return
     * @throws Exception
     */
    public int queryNoticeUserByCount( MyUser user )throws  Exception;

    /**
     * 与通知相关的人员列表
     * @param user
     * @return
     * @throws Exception
     */
    public List<MyUser> noticeUserList( MyUser user )throws Exception;
    
    /**
     * 获取通知未选择的人员
     * @param user
     * @return
     * @throws Exception
     */
    public int queryNoNoticeUserByCount( MyUser user )throws Exception;

    /**
     * 获取通知 未添加人员的列表
     * @param user
     * @return
     * @throws Exception
     */
    public List<MyUser> queryNoticeNoUserList( MyUser user )throws Exception;

	/**
	 * 查询审核人数量
	 * @param user
	 * @return
	 * @throws Exception
	 */
	public Integer countAuditorList( MyUser user ) throws Exception;
	
	
	/**
	 * 获取所有全部用户的Id
	 * @Title: queryAllUsersId
	 * @data:2015-11-7下午03:03:24
	 * @author:san
	 *
	 * @return
	 * @throws Exception
	 */
	public List<MyUser> queryAllUsersId() throws Exception;

	
	/**
	 * 查询所有用户的lcient
	 * @Title: queryAllUsersClient
	 * @data:2015-11-23下午04:56:39
	 * @author:san
	 *
	 * @return
	 * @throws Exception
	 */
	public MyUser queryAllUsersClient( String user_id ) throws Exception;
	
	
	
  
    
 







}
